package exception;

//throws 和 throw
public class ThrowsTest {
    public static void main(String[] args){
        try{
            fun();
        }catch(ArithmeticException e){
            //在 fun 方法中已经处理过，在这里就捕获不到了
            System.out.println("main 方法中捕获算术异常");
            e.printStackTrace();
        }
        System.out.println("程序正常退出");
    }
    public static void fun() throws NullPointerException,ClassCastException{
        try{
            System.out.println(10 / 0);
        }catch(ArithmeticException e){
            System.err.println("产生算术运算异常");
        }
        int n = 2;
        if(n != 5){
            //用 throw 必须在方法参数列表后边进行 throws 的异常声明
            throw new ArithmeticException("算术运算异常");
        }
        System.out.println("方法结束");
    }
}
